package com.runchamp.locationUtils;

import android.location.Location;

import java.util.ArrayList;

/**
 * A track.
 *
 * @author Leif Hendrik Wilden
 * @author Rodrigo Damazio
 */
public class Track {

    private long id = -1L;
    private String name = "";
    private String description = "";
    private String category = "";
    private long startId = -1L;
    private long stopId = -1L;

    /*
     * The number of location points (present even if the points themselves are
     * not loaded)
     */
    private int numberOfPoints = 0;
    private String icon = "";
    private String driveId = "";
    private long modifiedTime = -1L;
    private boolean sharedWithMe = false;
    private String sharedOwner = "";

    private TripStatistics tripStatistics = new TripStatistics();

    // Location points (which may not have been loaded)
    private ArrayList<Location> locations = new ArrayList<Location>();

    public Track() {

    }


    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public long getStartId() {
        return startId;
    }

    public void setStartId(long startId) {
        this.startId = startId;
    }

    public long getStopId() {
        return stopId;
    }

    public void setStopId(long stopId) {
        this.stopId = stopId;
    }

    public int getNumberOfPoints() {
        return numberOfPoints;
    }

    public void setNumberOfPoints(int numberOfPoints) {
        this.numberOfPoints = numberOfPoints;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public String getDriveId() {
        return driveId;
    }

    public void setDriveId(String driveId) {
        this.driveId = driveId;
    }

    public long getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(long modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public boolean isSharedWithMe() {
        return sharedWithMe;
    }

    public void setSharedWithMe(boolean sharedWithMe) {
        this.sharedWithMe = sharedWithMe;
    }

    public String getSharedOwner() {
        return sharedOwner;
    }

    public void setSharedOwner(String sharedOwner) {
        this.sharedOwner = sharedOwner;
    }

    public TripStatistics getTripStatistics() {
        return tripStatistics;
    }

    public void setTripStatistics(TripStatistics tripStatistics) {
        this.tripStatistics = tripStatistics;
    }

    public void addLocation(Location location) {
        locations.add(location);
    }

    public ArrayList<Location> getLocations() {
        return locations;
    }

    public void setLocations(ArrayList<Location> locations) {
        this.locations = locations;
    }
}